#pragma once
class cObject{
public:
    cObject(){
        Transform=cMat4::Identity;
    }
    cStr Name;
    cMat4 Transform;
};
//*****************************************************************************
// cSurface
//*****************************************************************************
struct cMtlDataChunk{
    DWORD Type;
    cList<char> Data;
};
class cSurface {
public:
	cSurface();
	cSurface(const char *Name, const cColor &Ambient, const cColor &Diffuse, const cColor &Specular, const float Shininess);

    void CopyTo(cSurface& dest);
    void Store(comms::cFile& dest);
    void ReStore(comms::cFile& dest);
	
	cStr Name;

    cColor Color;
	cColor Ambient;
	cColor Diffuse;
	cColor Specular;
    cColor Gloss;

    float Luminosity;
    float Reflection;
    float Refraction;
    float Transparency;
    float Translucensy;
	float Shininess;
    float DepthModulator;

    bool  UseLimitAngle;
    float LimitAngle;
    cList<cMtlDataChunk> ExData;
	
	struct Map {
		Map();
		
		cStr FileName;
		int Unit;
		bool MipMap;
		int  id;
		cVec2 Offset;
		cVec2 Scale;
		
		bool Load();
	};

	Map Tex[8];
	
	void Load();	
	
};
class cUVSet{
public:		
	cStr Name;
};